var nbsp = 160;		// non-breaking space char
var node_text = 3;	// DOM text node-type
var emptyString = /^\s*$/ ;
var global_valfield;	// retain valfield for timer thread

// --------------------------------------------
//                  trim
// Trim leading/trailing whitespace off string
// --------------------------------------------

function trim(str)
{
  return str.replace(/^\s+|\s+$/g, '');
}
// --------------------------------------------
//                  setfocus
// Delayed focus setting to get around IE bug
// --------------------------------------------
function setFocusDelayed()
{
  global_valfield.focus();
}

function setfocus(valfield)
{
  // save valfield in global variable so value retained when routine exits
  global_valfield = valfield;
  setTimeout( 'setFocusDelayed()', 100 );
}

function validateOnSubmit() {
    var elem;
    var errs=0;
    // execute all element validations in reverse order, so focus gets
    // set to the first one in error.
    if (!validateTelnr  (document.forms.demo.telnr, 'inf_telnr', true)) errs += 1; 
    if (!validateAge    (document.forms.demo.age,   'inf_age',  false)) errs += 1; 
    if (!validateEmail  (document.forms.demo.email, 'inf_email', true)) errs += 1; 
    if (!validatePresent(document.forms.demo.from,  'inf_from'))        errs += 1; 

    if (errs>1)  alert('There are fields which need correction before sending');
    if (errs==1) alert('There is a field which needs correction before sending');

    return (errs==0);
  };
  
          function passwordStrength(password,passwordStrength,errorField)
        {
            var desc = new Array();
            desc[0] = "ERROR:Require";
            desc[1] = "Weak";
            desc[2] = "Better";
            desc[3] = "Medium";
            desc[4] = "Strong";
            desc[5] = "Strongest";

            var score   = 0;

            //if password bigger than 6 give 1 point
            if (password.length > 1) score++;

            //if password has both lower and uppercase characters give 1 point
            if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;

            //if password has at least one number give 1 point
            if (password.match(/\d+/)) score++;

            //if password has at least one special caracther give 1 point
            if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) score++;

            //if password bigger than 12 give another 1 point
            if (password.length > 12) score++;

            passwordStrength.innerHTML = desc[score];
            passwordStrength.className = "inf_pass" + score;
        }
        
        function checkPass(){
                //Store the password field objects into variables ...
                var pass1 = document.getElementById('pass');
                var pass2 = document.getElementById('conf');
                //Store the Confimation Message Object ...
                var message = document.getElementById('inf_conf');
                //Set the colors we will be using ...
                var goodColor = "#66cc66";
                var badColor = "#ff6666";
                //Compare the values in the password field 
                //and the confirmation field
                if(pass1.value == pass2.value){
                    //The passwords match. 
                    //Set the color to the good color and inform
                    //the user that they have entered the correct password 
                    pass2.style.backgroundColor = goodColor;
                    message.style.color = goodColor;
                    message.innerHTML = "Passwords Match!"
                }else{
                    //The passwords do not match.
                    //Set the color to the bad color and
                    //notify the user.
                    pass2.style.backgroundColor = badColor;
                    message.style.color = badColor;
                    message.innerHTML = "Passwords Do Not Match!"
                }
        }  

        function checkEmail(){
                //Store the password field objects into variables ...
                var pass1 = document.getElementById('email');
                var pass2 = document.getElementById('email-conf');
                //Store the Confimation Message Object ...
                var message = document.getElementById('inf_from');
                //Set the colors we will be using ...
                var goodColor = "#66cc66";
                var badColor = "#ff6666";
                //Compare the values in the password field 
                //and the confirmation field
                if(pass1.value == pass2.value){
                    //The passwords match. 
                    //Set the color to the good color and inform
                    //the user that they have entered the correct password 
                    pass2.style.backgroundColor = goodColor;
                    message.style.color = goodColor;
                    message.innerHTML = "Email Match!"
                }else{
                    //The passwords do not match.
                    //Set the color to the bad color and
                    //notify the user.
                    pass2.style.backgroundColor = badColor;
                    message.style.color = badColor;
                    message.innerHTML = "Email Do Not Match!"
                }
        }  
 